package com.wang.io;

import org.junit.jupiter.api.Test;

import java.io.FileWriter;
import java.io.IOException;

/**
 * FileWriter：用于将内存数据(char)写入磁盘文件，如果文件不存在，就自动创建后再写入，有【覆盖】和【追加】两种模式，指针记录上次写入的末尾位置。
 */
public class TestFileWriter {

    /**
     * 构造方法：
     *   1. new FileWriter(File/String)：覆盖模式(指针起初指向文件内容的起始位置)
     *   2. new FileWriter(File/String, boolean append)：追加模式(指针起初指向文件内容的末尾)
     * 写入磁盘文件：
     *   1. write(char c)：写入一个字符
     *   2. write(char[] buf)：批量写入
     *   3. write(char[] buf, int off, int len)：部分写入，off：偏移量，len：写入长度
     *   4. write(String str)
     *   5. write(String str, int off, int len)
     * 保存磁盘文件：
     *   1. flush()
     *   2. close()
     */
    @Test
    public void test01() {
        String destFilePath = "e:\\b.txt";
        FileWriter fileWriter = null;

        try {
            fileWriter = new FileWriter(destFilePath, false);
            fileWriter.write("张三， ");
            fileWriter.write("李四都是假的");
            fileWriter.write("!!!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
